﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using BE;
using CrystalDecisions.Shared;
using System.Data;


namespace UI.DireccionAcademica
{
    public partial class frmReporteActaPromocional : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarComboSemestre();
                llenarComboEscuelaProfesional();
                llenarComboCiclos();
                llenarComboEspecialidad();
            }
            {


            }
        }
        private void llenarComboSemestre()
        {
            LabelError.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Periodo> lista = rnc.ObtenerPeriodos();
                comboSemestre.DataSource = lista;
                comboSemestre.DataTextField = "Semestre";
                comboSemestre.DataValueField = "ID";
                comboSemestre.DataBind();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }
        private void llenarComboEscuelaProfesional()
        {
            LabelError.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Escuela> lista = rnc.ObtenerEscuela();
                comboEscuela.DataSource = lista;
                comboEscuela.DataTextField = "Descripcion2";
                comboEscuela.DataValueField = "ID";
                comboEscuela.DataBind();

            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }
        private void llenarComboCiclos()
        {
            LabelError.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Ciclos> lista = rnc.ObtenerCiclos();
                comboCiclo.DataSource = lista;
                comboCiclo.DataTextField = "Descripcion";
                comboCiclo.DataValueField = "ID";
                comboCiclo.DataBind();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }

        private void llenarComboEspecialidad()
        {
            LabelError.Text = "";
            try
            {
                String IDEspecialidad = comboEscuela.SelectedValue.ToString();
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Especialidad> lista = rnc.ObtenerEspecialidadesPorEscuela(IDEspecialidad);
                comboEspecialidad.DataSource = lista;
                comboEspecialidad.DataTextField = "DESCRIPCCION";
                comboEspecialidad.DataValueField = "ID";
                comboEspecialidad.DataBind();

            }
            catch (Exception ex)
            {

                LabelError.Text = ex.Message;
            }

        }

        protected void comboEscuela_SelectedIndexChanged(object sender, EventArgs e)
        {
            LabelError.Text = "";
            try
            {
                String IDEspecialidad = comboEscuela.SelectedValue.ToString();
                llenarComboEspecialidad();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }
        }

        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            if (GenerarReporte())
            {
                string script = "AbrirVentana('frmReporteActaPromocionalPdf2.aspx')";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "popup", script, true);
            };          
        }

        private bool GenerarReporte()
        {
            LabelError.Text = "";
            try
            {
                //ComplementadoscursosBENIGNO reporte = new ComplementadoscursosBENIGNO();
                //Copyofactadocecursos reporte = new Copyofactadocecursos();

                CopyofactadocecursosSegundo reporte = new CopyofactadocecursosSegundo();

                ActaPromocional_BL obj = new ActaPromocional_BL();
                String ciclo = comboCiclo.SelectedValue;
                String especialidad = comboEspecialidad.SelectedValue;
                String semestre = comboSemestre.SelectedItem.Text;
                DataTable dato = new DataTable();
                //dato = obj.ActaPromocional_xCodigo_xNombre_xEspec(ciclo, especialidad, semestre);


                Especialidad espe = obj.obtenerEspecialidad(especialidad);

                if (espe.Flag_Grupo == 1)
                {
                    dato = obj.ActaPromocional_xCodigo_xNombre_xEspec_paraGrupos(ciclo, "MF", semestre, especialidad);
                }
                else {
                    dato = obj.ActaPromocional_xCodigo_xNombre_xEspec(ciclo, especialidad, semestre);
                }
                

                                                                                
                //ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                //String ciclo = comboCiclo.SelectedValue;
                //String especialidad = comboEspecialidad.SelectedValue;
                //String semestre = comboSemestre.SelectedItem.Text;
                //List<ReporteNominaComplementaria> lista = rnc.ObtenerDataReporte(ciclo, especialidad, semestre);

                if (dato.Rows.Count == 0)
                //if (lista.Count == 0)
                {
                    LabelError.Text = "No se encontraron registros";
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + "No se encontraron registros :" + "" + "');", true);
                    return false;
                }


                String variaslistas = "SI";
                if (dato.Rows.Count > 30)
                //if (lista.Count > 30)
                {
                    variaslistas = "NO";
                }

                //reporte.SetDataSource(lista);
                reporte.SetDataSource(dato);

                String aniosestuS = "";
                //Int32 anioestu = Convert.ToInt32(ciclo) / 2;
                //if ((anioestu > 0) && (anioestu <= 2))
                //{
                //    aniosestuS = "PRIMERO";
                //}
                //else if ((anioestu > 2) && (anioestu <= 4)) { aniosestuS = "SEGUNDO"; }
                //else if ((anioestu > 4) && (anioestu <= 6)) { aniosestuS = "TERCERO"; }
                //else if ((anioestu > 6) && (anioestu <= 8)) { aniosestuS = "CUARTO"; }
                //else if ((anioestu > 8) && (anioestu <= 10)) { aniosestuS = "QUINTO"; }
                
                //TO-TEST210714:
                Int32 anioestu = Convert.ToInt32(ciclo);
                if ((anioestu > 0) && (anioestu <= 2))
                {
                    aniosestuS = "PRIMERO";
                }
                else if ((anioestu > 2) && (anioestu <= 4)) { aniosestuS = "SEGUNDO"; }
                else if ((anioestu > 4) && (anioestu <= 6)) { aniosestuS = "TERCERO"; }
                else if ((anioestu > 6) && (anioestu <= 8)) { aniosestuS = "CUARTO"; }
                else if ((anioestu > 8) && (anioestu <= 10)) { aniosestuS = "QUINTO"; }



                reporte.DataDefinition.FormulaFields["2Hojas"].Text = "'" + variaslistas + "'";

                reporte.DataDefinition.FormulaFields["escue"].Text = "'" + comboEscuela.SelectedItem.Text.Trim() + "'";
                reporte.DataDefinition.FormulaFields["anioacad"].Text = "'" + comboCiclo.SelectedItem.Text.Trim() + "'";
                reporte.DataDefinition.FormulaFields["anioestu"].Text = "'" + aniosestuS + "'";
              
                //reporte.DataDefinition.FormulaFields["semes"].Text = "'" + comboSemestre.SelectedItem.Text.Trim() + "'";
                //reporte.DataDefinition.FormulaFields["feta"].Text = "'" + DateTime.Now.ToString() + "'";                

                string ci = comboCiclo.SelectedItem.Text.Trim();
                string pintaci;
                if (ci == "1")
                {
                    pintaci = "I";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "2")
                {
                    pintaci = "II";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "3")
                {
                    pintaci = "III";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "4")
                {
                    pintaci = "IV";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "5")
                {
                    pintaci = "V";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "6")
                {
                    pintaci = "VI";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "7")
                {
                    pintaci = "VII";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "8")
                {
                    pintaci = "VIII";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "9")
                {
                    pintaci = "IX";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }
                else if (ci == "10")
                {
                    pintaci = "X";
                    reporte.DataDefinition.FormulaFields["cic"].Text = "'" + pintaci + "'";
                }

                //reporte.DataDefinition.FormulaFields["cic"].Text = "'" + comboCiclo.SelectedItem.Text.Trim() + "'";               

                reporte.DataDefinition.FormulaFields["espi"].Text = "'" + comboEspecialidad.SelectedItem.Text.Trim() + "'";

                //reporte.DataDefinition.FormulaFields["prof1"].Text = "'" + txtDocente1.Text.Trim() + "'";
                //reporte.DataDefinition.FormulaFields["prof2"].Text = "'" + txtDocente2.Text.Trim() + "'";


                ExportOptions CrExportOptions;
                DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
                PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
                String rutaarchivo = System.IO.Path.GetTempFileName() + Guid.NewGuid() + ".pdf";
                CrDiskFileDestinationOptions.DiskFileName = rutaarchivo;

                Session["RutaReporte"] = rutaarchivo;


                CrExportOptions = reporte.ExportOptions;
                {
                    CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
                    CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
                    CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;

                    CrExportOptions.FormatOptions = CrFormatTypeOptions;

                }

                reporte.Export();
                reporte.Close();
                return true;
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
                return false;
            }
        }


    }
}